/*
 * @Author:  YufengHao
 * @Date:   2017-11-16 16:06:01
 * @Last Modified by:    YufengHao
 * @Last Modified time: 2018-09-06 09:41:28
 */
/**
 *
 * 用法：
 *
 *
 rules: {
        loginName: [
          { required: true, message: '请输入用户名', trigger: 'blur' },
          { validator: utils.phone } //将验证规则放到这
        ],
        password: [
          { required: true, message: '请输入密码', trigger: 'blur' },
          { validator: utils.validatePass }  //将验证规则放到这
        ],
      },
 *
 */
export default {
    dateCheck(rule, value, callback) {
        if (!value) {
            return callback(new Error('日期不能为空'));
            callback();
        } else if (!(/^(\d{4})-(\d{2})-(\d{2})$/.test(value))) {
            return callback(new Error('格式不正确,例:2000-01-01'));
        } else {
            callback();
        }
    },
    // 密码验证
    validatePass(rule, value, callback) {
        if (value === '') {
            return callback(new Error('请设置正确格式的密码'));
        } else if (value.length < 6) {
            callback(new Error('密码长度最小6位'));
        } else {
            callback();
        }
    },
    creditCode(rule, value, callback) {
        if (!(/^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$/.test(value))) {
            return callback(new Error('统一社会信用代码格式不正确'));
        } else {
            callback();
        }
    },
    clearNoNum(rule, value, callback) {
        if (!(/^([1-9](\d+)?(\.\d{1,2})?$)|(^0$)|(^\d\.\d{1,2})$/.test(value))) {
            return callback(new Error('只能输入数字，保留两位小数'));
        } else {
            callback();
        }
    },
    clearNum(rule, value, callback) {
        if (!(/^([1-9]\d*|[0]{1,1})$/.test(value))) {
            return callback(new Error('只能输入正整数'));
        } else {
            callback();
        }
    },
    phone(rule, value, callback) {
        if (!value) {
            return callback(new Error('联系方式不能为空'));
        } else if (!(/^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/.test(value))) {
            return callback(new Error('您输入的联系方式格式不正确'));
        } else {
            callback();
        }
    },
    url(rule, value, callback) {
        if (!(/^((ht|f)tps?):\/\/([\w\-]+(\.[\w\-]+)*\/)*[\w\-]+(\.[\w\-]+)*\/?(\?([\w\-\.,@?^=%&:\/~\+#]*)+)?$/.test(value))) {
            return callback(new Error('您输入的网址格式不正确,请添加http://或https://前缀'));
        } else {
            callback();
        }
    },
    email(rule, value, callback) {
        if (!value) {
            return callback(new Error('邮箱地址不能为空'));
        } else if (!(/^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/.test(value))) {
            return callback(new Error('您输入的邮箱地址格式不正确'));
        } else {
            callback();
        }
    },
    idCard(rule, value, callback) {
        if (!value) {
            return callback(new Error('身份证号不能为空'));
        } else if (!(/^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/.test(value))) {
            return callback(new Error('您输入的身份证号格式不正确'));
        } else {
            callback();
        }
    },
    // 只能是数字和英文字母
    isNumber(rule, value, callback) {
        if (!value) {
            return callback(new Error('请填写正确的格式'));
        } else if ((/[\W_]/.test(value))) {
            return callback(new Error('输入的内容只能是数字和字符'));
        } else {
            callback();
        }
    },
    // 验证码验证
    validateVerifycode(rule, value, callback) {
        if (value === '') {
            callback(new Error('请输入验证码'))
        } else if (value.toLowerCase() != this.validCode.toLowerCase()) {
            callback(new Error('验证码不正确!'))
        } else {
            callback()
        }
    }
}
